////
////  UIImageExtension.swift
////  HuaDaoPeifu
////
////  Created by Erickson on 16/5/18.
////  Copyright © 2016年 paiyipai. All rights reserved.
////
//
//import Foundation
//
//
//extension UIImage {
//    
//    func fixOrientation() -> UIImage{
//        if self.imageOrientation == .Up{
//            return self
//        }
//        var transform = CGAffineTransformIdentity
//        switch self.imageOrientation{
//        case .Down, .DownMirrored:
//            transform = CGAffineTransformTranslate(transform, self.size.width, self.size.height)
//            transform = CGAffineTransformRotate(transform, CGFloat(M_PI))
//            break
//        case .Left, .LeftMirrored:
//            transform = CGAffineTransformTranslate(transform, self.size.width, 0)
//            transform = CGAffineTransformRotate(transform, CGFloat(M_PI_2))
//            break
//        case .Right, .RightMirrored:
//            transform = CGAffineTransformTranslate(transform, 0, self.size.height)
//            transform = CGAffineTransformRotate(transform, CGFloat(-M_PI_2))
//            break
//        default:
//            break
//        }
//        
//        switch self.imageOrientation{
//        case .UpMirrored, .DownMirrored:
//            transform = CGAffineTransformTranslate(transform, self.size.width, 0)
//            transform = CGAffineTransformScale(transform, -1, 1)
//            break
//        case .LeftMirrored, .RightMirrored:
//            transform = CGAffineTransformTranslate(transform, self.size.height, 0)
//            transform = CGAffineTransformScale(transform, -1, 1)
//            break
//        default:
//            break
//        }
//        
//        let ctx = CGBitmapContextCreate(nil,
//                                        Int(self.size.width),
//                                        Int(self.size.height),
//                                        CGImageGetBitsPerComponent(self.CGImage),
//                                        0,
//                                        CGImageGetColorSpace(self.CGImage),
//                                        CGImageGetBitmapInfo(self.CGImage).rawValue)
//        
//        CGContextConcatCTM(ctx, transform)
//        
//        switch self.imageOrientation{
//        case .Left, .LeftMirrored, .Right, .RightMirrored:
//            CGContextDrawImage(ctx, CGRectMake(0, 0, self.size.height, self.size.width), self.CGImage)
//            break
//        default:
//            CGContextDrawImage(ctx, CGRectMake(0, 0, self.size.width, self.size.height), self.CGImage)
//            break
//        }
//        /*
//         CGImageRef cgimg = CGBitmapContextCreateImage(ctx);
//         UIImage *img = [UIImage imageWithCGImage:cgimg];
//         CGContextRelease(ctx);
//         CGImageRelease(cgimg);
//         */
//        let cgImage = CGBitmapContextCreateImage(ctx)
//        let returnImage = UIImage(CGImage: cgImage!)
////        CGContextRelease(ctx);
////        CGContextRelease(ctx)
//        return returnImage
//    }
//    /*
//     + (UIImage *)fixOrientation:(UIImage *)aImage {
//     
//     // No-op if the orientation is already correct
//     if (aImage.imageOrientation == UIImageOrientationUp)
//     return aImage;
//     
//     // We need to calculate the proper transformation to make the image upright.
//     // We do it in 2 steps: Rotate if Left/Right/Down, and then flip if Mirrored.
//     CGAffineTransform transform = CGAffineTransformIdentity;
//     
//     switch (aImage.imageOrientation) {
//     case UIImageOrientationDown:
//     case UIImageOrientationDownMirrored:
//     transform = CGAffineTransformTranslate(transform, aImage.size.width, aImage.size.height);
//     transform = CGAffineTransformRotate(transform, M_PI);
//     break;
//     
//     case UIImageOrientationLeft:
//     case UIImageOrientationLeftMirrored:
//     transform = CGAffineTransformTranslate(transform, aImage.size.width, 0);
//     transform = CGAffineTransformRotate(transform, M_PI_2);
//     break;
//     
//     case UIImageOrientationRight:
//     case UIImageOrientationRightMirrored:
//     transform = CGAffineTransformTranslate(transform, 0, aImage.size.height);
//     transform = CGAffineTransformRotate(transform, -M_PI_2);
//     break;
//     default:
//     break;
//     }
//     
//     switch (aImage.imageOrientation) {
//     case UIImageOrientationUpMirrored:
//     case UIImageOrientationDownMirrored:
//     transform = CGAffineTransformTranslate(transform, aImage.size.width, 0);
//     transform = CGAffineTransformScale(transform, -1, 1);
//     break;
//     
//     case UIImageOrientationLeftMirrored:
//     case UIImageOrientationRightMirrored:
//     transform = CGAffineTransformTranslate(transform, aImage.size.height, 0);
//     transform = CGAffineTransformScale(transform, -1, 1);
//     break;
//     default:
//     break;
//     }
//     
//     // Now we draw the underlying CGImage into a new context, applying the transform
//     // calculated above.
//     CGContextRef ctx = CGBitmapContextCreate(NULL, aImage.size.width, aImage.size.height,
//     CGImageGetBitsPerComponent(aImage.CGImage), 0,
//     CGImageGetColorSpace(aImage.CGImage),
//     CGImageGetBitmapInfo(aImage.CGImage));
//     CGContextConcatCTM(ctx, transform);
//     switch (aImage.imageOrientation) {
//     case UIImageOrientationLeft:
//     case UIImageOrientationLeftMirrored:
//     case UIImageOrientationRight:
//     case UIImageOrientationRightMirrored:
//     // Grr...
//     CGContextDrawImage(ctx, CGRectMake(0,0,aImage.size.height,aImage.size.width), aImage.CGImage);
//     break;
//     
//     default:
//     CGContextDrawImage(ctx, CGRectMake(0,0,aImage.size.width,aImage.size.height), aImage.CGImage);
//     break;
//     }
//     
//     // And now we just create a new UIImage from the drawing context
//     CGImageRef cgimg = CGBitmapContextCreateImage(ctx);
//     UIImage *img = [UIImage imageWithCGImage:cgimg];
//     CGContextRelease(ctx);
//     CGImageRelease(cgimg);
//     return img;
//     }*/
